package src.itheima03;

import java.util.HashMap;
import java.util.Set;

/*
    HashMap存储自定义Student对象并遍历        ---第一种方式: 根据键找值
    步骤:
        1.创建标准的Student类
        2.创建HashMap集合对象,键: Student 值: String 地址
        3.HashMap集合对象调用put方法,添加多个键值对
        4.HashMap集合对象调用keySet方法,获取所有的键对应的Set集合
        5.遍历所有的键对应的Set集合
        6.获取当前的键
        7.HashMap集合对象调用get方法,传递当前的键,获取对应的值
        8.打印键和值

     java.util.HashMap<K,V>集合
            特点:
                1.具备哈希特性: 针对键,键唯一,无索引,无序
                2.希特性: 唯一,无索引,无序
                3.要求: 键所属的类,覆盖重写hashCode方法和equals方法

                键相同,值被替换

 */
public class Demo03HashMapEach {
    public static void main(String[] args) {
        //2.创建HashMap集合对象,键: Student 值: String 地址
        HashMap<Student,String> map = new HashMap<>();

        //3.HashMap集合对象调用put方法,添加多个键值对
        map.put(new Student("柳岩",18),"北京");
        map.put(new Student("柳岩",18),"上海");
        map.put(new Student("刘德华",28),"香港");
        map.put(new Student("刘德华",28),"广州");
        map.put(new Student("王宝强",20),"河北");
        map.put(new Student("王宝强",20),"山东");

        //4.HashMap集合对象调用keySet方法,获取所有的键对应的Set集合
        Set<Student> set = map.keySet();

        //5.遍历所有的键对应的Set集合: 增强for
        for(Student key : set) {
            //6.获取当前的键: key
            //7.HashMap集合对象调用get方法,传递当前的键,获取对应的值
            String value = map.get(key);

            //8.打印键和值
            System.out.println(key+"...."+value);
        }
    }
}
